package cn.com.surker.sale.dao;

import cn.com.surker.sale.entity.SaleContractBillDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 销售结算明细表 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2024-05-20
 */
public interface SaleContractBillDetailDao extends BaseMapper<SaleContractBillDetail> {

    /**
     * 查询日报结算数据
     * @param orgId
     * @param conId
     * @param startTime
     * @param endTime
     * @return
     */
    List<SaleContractBillDetail> findBillDay(Long orgId, Long conId, String startTime,
                                             String endTime, Integer billTimeType);

    /**
     * 查询结算明细值
     * @param orgId
     * @param conId
     * @param startTime
     * @param endTime
     * @return
     */
    List<SaleContractBillDetail> findBillAll(Long orgId, Long conId, String startTime,
                                             String endTime);

    /**
     * 查询日报结算数据
     * @param orgId
     * @param conId
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> findLevel(Long orgId, Long conId, String startTime, String endTime,
                                        Integer billTimeType);

    /**
     * 根据公司信息查询工程名称
     * @param orgId
     * @return
     */
    List<Map<String, Object>> findContractAll(Long orgId, String saleMan);

    /**
     * 批量新增
     * @param list
     * @return
     */
    Integer saveBatch(List<SaleContractBillDetail> list);

    /**
     * 查询未办理结算的工程
     * @param orgId
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> findNoBillReport(Long orgId, String startTime, String endTime);

    /**
     * 查询合同产值
     * @param startTime
     * @param endTime
     * @return
     */
    SaleContractBillDetail findConPro(Long conId, String startTime, String endTime);

}
